package com.wei.duowan.bbs.utils;

import android.support.annotation.Nullable;
import android.util.Log;

import com.wei.duowan.bbs.App;
import com.wei.duowan.bbs.R;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * 作者：赵若位
 * 时间：2019/8/29 22:51
 * 联系方式：1070138445
 * 功能：
 */
public class TimeUtils
{
    private static final String TAG = TimeUtils.class.getSimpleName();

    public static final Long MINUTE = 60 * 1000L;//1分钟
    public static final Long HOUR = 60 * MINUTE;//1小时
    public static final Long DAY = 24 * HOUR;//1天
    public static final Long MONTH = 30 * DAY;//1月
    public static final Long YEAR = 365 * DAY;//1年

    /**
     * 13位时间戳转时间
     *
     * @param time
     * @return
     */
    public static String getNewsTime(long time)
    {
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        //设置时区
        format.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        Date date = new Date(time);
        return format.format(date);
    }

    /**
     * 获取当前时间
     *
     * @return
     */
    public static Date getNowTime()
    {
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        //设置时区
        format.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        Date date = new Date(System.currentTimeMillis());
        return date;
    }


    /**
     * 头条时间转换
     *
     * @param time
     * @return
     */
    public static String getNewsListTime(@Nullable long time)
    {
        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
        calendar.setTimeInMillis(time * 1000);

        long value = Math.abs(System.currentTimeMillis() - time * 1000);
        if (value <= HOUR)
        {
            return new StringBuffer((int) (value / MINUTE)).append(App.getResource().getString(R.string.minutes_before)).toString();
        }

        if (value <= DAY)
        {
            return new StringBuffer().append(value / HOUR).append(App.getResource().getString(R.string.hours_before)).toString();
        }

        if (value <= YEAR / 2)
        {
            return new SimpleDateFormat("MM月dd日 HH:mm").format(calendar.getTime());
        }
        return new SimpleDateFormat("yyyy年MM月dd日 HH:mm").format(calendar.getTime());
    }


    /**
     * 字符串时间转时间戳
     *
     * @param time
     * @return
     */
    public static long getTime(String time)
    {
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        try
        {
            return format.parse(time).getTime();
        } catch (ParseException e)
        {
            e.printStackTrace();
            Log.e(TAG, "getTime: " + e.getMessage());
            return 0;
        }
    }
}
